home *** CD-ROM | disk | FTP | other *** search
/ The PC-SIG Library 10 / The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso / PC_SIGCD / 01 / 4 / DISK0145.ZIP / COMP.BAS < prev    next >
BASIC Source File  |  1984-04-24  |  3KB  |  88 lines

  1. 10 '**************************************************************************
  2. 20 '*                                                                        *
  3. 30 '*                 COMP.BAS BY ROBERT RELF (C)1984                        *
  4. 40 '*                                                                        *
  5. 50 '**************************************************************************
  6. 60 DIM C$(128),D$(128)
  7. 70 POINTER1=129:POINTER2=129
  8. 80 CLS:KEY OFF:PRINT"                BASIC PROGRAM FILE COMPARISON UTILITY":PRINT
  9. 90 INPUT "ENTER FIRST FILE NAME INCLUDING DRIVE AND EXTENSION: ",FILENAME1$:PRINT
  10. 100 INPUT "ENTER SECOND FILE NAME INCLUDING DRIVE AND EXTENSION: ",FILENAME2$:PRINT
  11. 110 LPRINT "BASIC PROGRAM FILE COMPARISON
  12. 120 LPRINT
  13. 130 LPRINT "COMPARING ";FILENAME1$;" AND ";FILENAME2$
  14. 140 LPRINT :LPRINT
  15. 150 OPEN FILENAME1$ AS #1 LEN=128
  16. 160 OPEN FILENAME2$ AS #2 LEN=128
  17. 170 FOR I=1 TO 128
  18. 180 FIELD #1,(I-1)AS X$,1 AS C$(I)
  19. 190 FIELD #2,(I-1)AS Y$,1 AS D$(I):NEXT
  20. 200 GOSUB 480:IF C<>255 THEN PRINT "NOT A TOKENIZED PROGRAM FILE":END
  21. 210 GOSUB 550:IF D<>255 THEN PRINT "NOT A TOKENIZED PROGRAM FILE":END
  22. 220 GOSUB 400
  23. 230 GOSUB 440
  24. 240 GOSUB 620
  25. 250 GOSUB 750
  26. 260 LOCATE 8,1:PRINT "PROCESSING #1 LINE ";LINE1
  27. 270 LOCATE 10,1:PRINT "PROCESSING #2 LINE ";LINE2
  28. 280 IF DONE1=1 AND DONE2=1 THEN IF ID=0 THEN LPRINT "FILES COMPARE OK":LPRINT CHR$(12):END ELSE LPRINT CHR$(12):END
  29. 290 IF DONE1=1 AND DONE2=0 THEN GOSUB 380:GOSUB 440:GOSUB 750:GOTO 260
  30. 300 IF DONE1=0 AND DONE2=1 THEN GOSUB 360:GOSUB 400:GOSUB 620:GOTO 260
  31. 310 IF LINE1=LINE2 THEN IF LINE1$=LINE2$ THEN GOTO 220 ELSE GOSUB 340:GOTO 220
  32. 320 IF LINE1<LINE2 THEN GOSUB 360:GOSUB 400:GOSUB 620:GOTO 260
  33. 330 IF LINE1>LINE2 THEN GOSUB 380:GOSUB 440:GOSUB 750:GOTO 260
  34. 340 LPRINT "LINES ";LINE1;" ARE NOT IDENTICAL":ID=1
  35. 350 RETURN
  36. 360 LPRINT "LINE NUMBER ";LINE1;" IN  ";FILENAME1$;"  DOES NOT EXIST IN  ";FILENAME2$:ID=1
  37. 370 RETURN
  38. 380 LPRINT "LINE NUMBER ";LINE2;" IN  ";FILENAME2$;"  DOES NOT EXIST IN  ";FILENAME1$:ID=1
  39. 390 RETURN
  40. 400 GOSUB 480:LOW.BYTE=C
  41. 410 GOSUB 480:HIGH.BYTE=C
  42. 420 ADR1=HIGH.BYTE+LOW.BYTE
  43. 430 RETURN
  44. 440 GOSUB 550:LOW.BYTE=D
  45. 450 GOSUB 550:HIGH.BYTE=D
  46. 460 ADR2=HIGH.BYTE+LOW.BYTE
  47. 470 RETURN
  48. 480 IF POINTER1<128 GOTO 510
  49. 490 GET #1
  50. 500 POINTER1=0
  51. 510 POINTER1=POINTER1+1
  52. 520 C=ASC(C$(POINTER1))
  53. 530 LINE1$=LINE1$+C$(POINTER1)
  54. 540 RETURN
  55. 550 IF POINTER2<128 GOTO 580
  56. 560 GET #2
  57. 570 POINTER2=0
  58. 580 POINTER2=POINTER2+1
  59. 590 D=ASC(D$(POINTER2))
  60. 600 LINE2$=LINE2$+D$(POINTER2)
  61. 610 RETURN
  62. 620 IF ADR1=0 THEN DONE1=1:RETURN
  63. 630 GOSUB 480:LOW.BYTE=C
  64. 640 GOSUB 480:HIGH.BYTE=C
  65. 650 LINE1=(HIGH.BYTE*256)+LOW.BYTE:LINE1$=STR$(LINE1)
  66. 660 GOSUB 480
  67. 670 WHILE C<>0
  68. 680 GOSUB 480
  69. 690 IF (C>10 AND C<15) OR C=28 THEN GOSUB 480:GOSUB 480:GOSUB 480:GOTO 730
  70. 700 IF C=15 THEN GOSUB 480:GOTO 730
  71. 710 IF C=29 THEN FOR I=1 TO 4:GOSUB 480:NEXT I:GOTO 730
  72. 720 IF C=31 THEN FOR I=1 TO 8:GOSUB 480:NEXT I:GOTO 730
  73. 730 WEND
  74. 740 RETURN
  75. 750 IF ADR2=0 THEN DONE2=1:RETURN
  76. 760 GOSUB 550:LOW.BYTE=D
  77. 770 GOSUB 550:HIGH.BYTE=D
  78. 780 LINE2=(HIGH.BYTE*256)+LOW.BYTE:LINE2$=STR$(LINE2)
  79. 790 GOSUB 550
  80. 800 WHILE D<>0
  81. 810 GOSUB 550
  82. 820 IF (D>10 AND D<15) OR D=28 THEN GOSUB 550:GOSUB 550:GOSUB 550:GOTO 860
  83. 830 IF D=15 THEN GOSUB 550:GOTO 860
  84. 840 IF D=29 THEN FOR I=1 TO 4:GOSUB 550:NEXT I:GOTO 860
  85. 850 IF D=31 THEN FOR I=1 TO 8:GOSUB 550:NEXT I:GOTO 860
  86. 860 WEND
  87. 870 RETURN
  88.